Apache POI ব্যবহার করে আপনি সহজেই Word ডকুমেন্টে ইমেজ যোগ করতে পারেন। এটি সাধারণত XWPFDocument ক্লাসের সাহায্যে করা হয়, যেখানে আপনি XWPFPicture বা XWPFRun ব্যবহার করে ইমেজ ইনসার্ট করতে পারেন। এই পদ্ধতিতে আপনি JPEG, PNG সহ বিভিন্ন ইমেজ ফর্ম্যাট ব্যবহার করতে পারেন।
নিম্নে দেখানো হয়েছে কিভাবে JPEG এবং PNG ফরম্যাটের ইমেজ Word ডকুমেন্টে যুক্ত করা যায়।
ইমেজ যোগ করতে, আপনাকে প্রথমে ইমেজ ফাইলের পাথ নির্ধারণ করতে হবে এবং তারপর XWPFRun ক্লাসের মাধ্যমে সেই ইমেজটি প্যারাগ্রাফে যোগ করতে হবে।
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.util.Units;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class AddImageToWord {
public static void main(String[] args) throws IOException {
// নতুন Word ডকুমেন্ট তৈরি
XWPFDocument document = new XWPFDocument();
// একটি প্যারাগ্রাফ তৈরি করা
XWPFParagraph paragraph = document.createParagraph();
// প্যারাগ্রাফে রান তৈরি করা
XWPFRun run = paragraph.createRun();
// ইমেজ যোগ করা (JPEG অথবা PNG)
String imagePath = "path_to_your_image.jpg"; // ইমেজ ফাইলের পাথ
try (FileInputStream fis = new FileInputStream(imagePath)) {
run.addPicture(fis, XWPFDocument.PICTURE_TYPE_JPEG, imagePath, Units.toEMU(100), Units.toEMU(100)); // ইমেজ আকার ১০০x১০০ পিক্সেল
}
// Word ডকুমেন্ট সেভ করা
try (FileOutputStream out = new FileOutputStream("word_with_image.docx")) {
document.write(out);
}
System.out.println("ইমেজ সহ Word ডকুমেন্ট সফলভাবে তৈরি হয়েছে!");
}
}
এই কোডটির মাধ্যমে একটি JPEG বা PNG ইমেজ Word ডকুমেন্টে সফলভাবে যোগ করা যাবে।
ইমেজ যোগ করার সময় আপনি তার আকারও কাস্টমাইজ করতে পারেন। addPicture() মেথডে ইমেজের প্রস্থ এবং উচ্চতা পিক্সেলে বা EMU (English Metric Units) এ সেট করা হয়। Units.toEMU() পদ্ধতি ব্যবহার করে আপনি পিক্সেল থেকে EMU তে রূপান্তর করতে পারবেন।
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
import org.apache.poi.xwpf.usermodel.XWPFRun;
import org.apache.poi.util.Units;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class ResizeImageInWord {
public static void main(String[] args) throws IOException {
// নতুন Word ডকুমেন্ট তৈরি
XWPFDocument document = new XWPFDocument();
// একটি প্যারাগ্রাফ তৈরি করা
XWPFParagraph paragraph = document.createParagraph();
// প্যারাগ্রাফে রান তৈরি করা
XWPFRun run = paragraph.createRun();
// ইমেজ যোগ করা এবং আকার কাস্টমাইজ করা
String imagePath = "path_to_your_image.jpg"; // ইমেজ ফাইলের পাথ
try (FileInputStream fis = new FileInputStream(imagePath)) {
run.addPicture(fis, XWPFDocument.PICTURE_TYPE_JPEG, imagePath, Units.toEMU(150), Units.toEMU(150)); // ইমেজ আকার ১৫০x১৫০ পিক্সেল
}
// Word ডকুমেন্ট সেভ করা
try (FileOutputStream out = new FileOutputStream("resized_word_with_image.docx")) {
document.write(out);
}
System.out.println("আকার পরিবর্তন সহ ইমেজ Word ডকুমেন্টে সফলভাবে যোগ করা হয়েছে!");
}
}
এই কোডটি চালানোর পর, ইমেজটি কাস্টম আকারে Word ডকুমেন্টে যোগ করা হবে।
আপনি যদি ইমেজের সাইজটি স্বয়ংক্রিয়ভাবে ফিট করতে চান, তবে আপনাকে আকার নির্ধারণের পরিবর্তে aspect ratio মেনে চলতে হবে। যদিও POI লাইব্রেরি সাইজ স্বয়ংক্রিয়ভাবে কাস্টমাইজ করার জন্য সরাসরি কোনো পদ্ধতি প্রদান করে না, আপনি ইমেজের আসল আকার বের করে প্রোগ্রামেটিকভাবে সেটি সঠিক সাইজে কনভার্ট করতে পারেন।
Apache POI ব্যবহার করে Word ডকুমেন্টে ইমেজ যোগ করা অত্যন্ত সহজ। আপনি JPEG বা PNG ফরম্যাটের ইমেজ ফাইল ইনপুট স্ট্রিম দিয়ে Word ডকুমেন্টে যোগ করতে পারেন। addPicture() মেথডটি ইমেজের আকার কাস্টমাইজ করার সুযোগ দেয় এবং Units.toEMU() পদ্ধতি ব্যবহার করে আপনি সাইজ নিয়ন্ত্রণ করতে পারেন। এইভাবে আপনি ইমেজ এবং টেক্সটের সাথে একটি পেশাদারী Word ডকুমেন্ট তৈরি করতে পারেন।
common.read_more